package main

import "fmt"

// 链表由一个个数据节点组成的，它是一个递归结构，要么它是空的，要么它存在一个指向另外一个数据节点的引用。

type LinkNode struct {
	Data     int64
	NextNode *LinkNode
}

func main() {

	// 新的节点
	node := new(LinkNode)
	node.Data = 2
	// 新的节点
	node1 := new(LinkNode)
	node1.Data = 3
	node.NextNode = node1 // node1 链接到node 上
	// 新的节点
	node2 := new(LinkNode)
	node2.Data = 4
	node1.NextNode = node2

	// 按照顺序打印数据
	nowNode := node // 哨兵节点
	for {
		if nowNode != nil {
			// 打印节点值
			fmt.Println(nowNode.Data)
			// 获取下一个节点
			nowNode = nowNode.NextNode
			continue
		}
		// 如果下一个节点为nil，直接退出即可
		break
	}
}
